home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / GFA basic training.adf / Requester / SCHIEBEREGLER.LST < prev    next >
File List  |  1989-06-01  |  3KB  |  92 lines

  1. @schiebe_regler(180,80,"Frequenz-Einstellung!",0,0,0,100,wert&)
  2. PROCEDURE schiebe_regler(x%,y|,u$,g_x%,g_y|,min&,max&,VAR wert&)
  3.   '
  4.   u_breite%=LEN(u$)*8
  5.   b_breite%=MAX(u_breite%+10,g_x%+10,268)
  6.   b_hÖhe%=(12+10)+g_y|+(12+10)+10+(12+10)
  7.   mitte&=x%+b_breite%/2
  8.   '
  9.   '                  Hintergrund retten
  10.   COLOR 0
  11.   GET x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4,hintergrund$
  12.   PBOX x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4
  13.   COLOR 1
  14.   '                  Box zeichnen
  15.   BOX x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4
  16.   BOX x%+3,y|+2,x%+b_breite%+3,y|+b_hÖhe%+2
  17.   ADD x%,3
  18.   ADD y|,2
  19.   '                  Überschrift setzen
  20.   BOX mitte&-u_breite%/2-2,y|+5,mitte&+u_breite%/2+2,y|+17
  21.   TEXT mitte&-u_breite%/2,y|+14,u$
  22.   '                  Graphik setzen
  23.   IF g_x%>0
  24.     PUT mitte&-g_x%/2,y|+22,grafik$
  25.   ENDIF
  26.   '                  Box für Wert mit Wert
  27.   BOX mitte&-25,y|+12+10+g_y|+5,mitte&+25,y|+12+10+g_y|+17
  28.   tl|=LEN(STR$(wert&))*8
  29.   ty|=y|+12+10+g_y|+14
  30.   TEXT mitte&-tl|/2,ty|,wert&
  31.   '                  Slider zeichnen
  32.   sxl&=mitte&-109
  33.   sxr&=mitte&+109
  34.   syo&=y|+(12+10)+g_y|+(12+10)
  35.   syu&=syo&+10
  36.   BOX sxl&,syo&,sxr&,syu&
  37.   BOX sxl&-20,syo&,sxr&+20,syu&
  38.   TEXT sxl&-14,syu&-2,"-"
  39.   TEXT sxr&+6,syu&-2,"+"
  40.   '                   Ende Button
  41.   text$="Eingabe abbrechen!"
  42.   x1%=mitte&-(LEN(text$)*8+10)/2
  43.   x2%=mitte&+(LEN(text$)*8+10)/2
  44.   y1|=y|+b_hÖhe%-17
  45.   y2|=y|+b_hÖhe%-5
  46.   BOX x1%,y1|,x2%,y2|
  47.   TEXT mitte&-(LEN(text$)*8/2),y2|-3,text$
  48.   '                   Sprite-Daten
  49.   sprite$=""
  50.   FOR i|=1 TO 18
  51.     sprite$=sprite$+CHR$(0)+CHR$(255)
  52.   NEXT i|
  53.   SPRITE #2,sprite$
  54.   '
  55.   spy|=syo&+23
  56.   spx&=(sxl&-12)+(SUCC(wert&-min&)/(SUCC(max&-min&)/200))
  57.   SPRITE #2,spx&,spy|
  58.   '
  59.   REPEAT
  60.     WHILE MOUSEX>sxl&-20 AND MOUSEX<sxr&+20 AND MOUSEY>syo& AND MOUSEY<syu& AND MOUSEK=1
  61.       IF MOUSEX>sxl& AND MOUSEX<sxr&
  62.         spx&=MOUSEX-18
  63.         IF spx&<sxl&-11
  64.           spx&=sxl&-11
  65.         ELSE IF spx&>sxr&-30
  66.           spx&=sxr&-30
  67.         ENDIF
  68.         wert&=min&+SUCC(max&-min&)/200*(spx&-sxl&+11)
  69.       ELSE IF MOUSEX>sxr& AND MOUSEX<sxr&+20 AND wert&<max&
  70.         PAUSE 3
  71.         INC wert&
  72.         spx&=(sxl&-12)+(SUCC(wert&-min&)/(SUCC(max&-min&)/200))
  73.       ELSE IF MOUSEX>sxl&-20 AND MOUSEX<sxl& AND wert&>min&
  74.         PAUSE 3
  75.         DEC wert&
  76.         spx&=(sxl&-12)+(SUCC(wert&-min&)/(SUCC(max&-min&)/200))
  77.       ENDIF
  78.       IF LEN(STR$(wert&))*8<>tl|
  79.         COLOR 0
  80.         PBOX mitte&-24,y|+g_y|+28,mitte&+24,y|+g_y|+38
  81.         COLOR 1
  82.       ENDIF
  83.       tl|=LEN(STR$(wert&))*8
  84.       TEXT mitte&-tl|/2,ty|,wert&
  85.       SPRITE #2,spx&,spy|
  86.     WEND
  87.   UNTIL MOUSEX>x1% AND MOUSEX<x2% AND MOUSEY>y1| AND MOUSEY<y2| AND MOUSEK=1
  88.   SPRITE #2
  89.   PUT x%-3,y|-2,hintergrund$
  90.   hintergrund$=""
  91. RETURN
  92.